package com.mojian.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.mojian.entity.SysArticle;
import com.mojian.entity.SysFeedback;
import com.mojian.entity.SysUser;
import com.mojian.vo.article.ArticleListVo;
import com.mojian.vo.comment.CommentListVo;
import com.mojian.vo.user.UserStatsVo;

import java.util.List;
import java.util.Map;

/**
 * @author: quequnlong
 * @date: 2025/1/11
 * @description:
 */
public interface UserService {

    /**
     * 查询我的评论
     * @return
     */
    IPage<CommentListVo> selectMyComment();

    /**
     * 删除我的评论
     * @param ids
     * @return
     */
    Void delMyComment(List<Long> ids);

    /**
     * 查询我的点赞
     * @return
     */
    IPage<ArticleListVo> selectMyLike();

    /**
     * 查询我的回复
     * @return
     */
    IPage<CommentListVo> getMyReply();

    /**
     * 修改我的资料
     * @param user
     */
    void updateProfile(SysUser user);

    /**
     * 查询我的文章
     * @return
     */
    IPage<ArticleListVo> selectMyArticle(SysArticle article);

    /**
     * 获取用户统计数据
     * @return 用户统计数据
     */
    UserStatsVo getUserStats();

    /**
     * 统计当前用户的文章数量
     * @return 文章数量
     */
    int countUserArticles();

    /**
     * 统计当前用户的文章获赞数量
     * @return 获赞数量
     */
    int countUserArticleLikes();
    
    /**
     * 获取当前用户的会员信息
     * @return 会员信息
     */
    Map<String, Object> getUserMembershipInfo();
    
    /**
     * 获取当前用户的会员订单列表
     * @param pageNum 页码
     * @param pageSize 每页大小
     * @return 订单列表和分页信息
     */
    Map<String, Object> getUserMembershipOrders(Integer pageNum, Integer pageSize);
}
